package com.ep.thirdPlatformProject.oa.service;

import weaver.workflow.webservices.WorkflowRequestInfo;

/**
 * 工作流服务
 *
 * @author Karl
 * @date 2024/05/28
 */
public interface WorkFlowService {

    /**
     * 创建工作流请求
     *
     * @param workflowRequestInfo 工作流请求信息
     * @param userId              用户id
     * @return {@link String }
     */
    String doCreateWorkflowRequest(WorkflowRequestInfo workflowRequestInfo, Integer userId);

    /**
     * 提交工作流请求
     *
     * @param workflowRequestInfo 工作流请求信息
     * @param requestId           请求id
     * @param userId              用户id
     * @param type                类型
     * @param remark              备注
     * @return {@link String }
     */
    String submitWorkflowRequest(WorkflowRequestInfo workflowRequestInfo, Integer requestId, Integer userId, String type, String remark);


    /**
     * 第二步 构建表单参数，创建表单( 后期考虑使用mapStruct)
     *
     * @param requestInfo 请求信息
     * @param userId  创建者userId
     * @return {@link String }
     */
    String secondBuildFormRequest(WorkflowRequestInfo requestInfo,Integer userId);

    /**
     * 第三步 提交流程
     *
     * @param requestInfo 请求信息
     * @param requestId   请求id
     * @return {@link String }
     */
    String thirdSubmitFormRequest(WorkflowRequestInfo requestInfo, int requestId);




    String getWorkflowTodoList(String userId);

}
